// TestPrintXML.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <string>
#include <gtkui_public.h>
#include "gtkui.h"


#ifdef __cplusplus
extern "C" {
#endif

GTKUI_DLL_API void *load_gtk_ui(const char* file_name)
{
    return (void*)_load_gtk_ui<GtkUiXmlDoc, GtkUiXmlNode>(file_name);
}

GTKUI_DLL_API void* get_gtk_ui_root(void* gtk_ui_doc)
{
    return _get_gtk_ui_root<GtkUiXmlDoc, GtkUiXmlNode>((GtkUiXmlDoc)gtk_ui_doc);
}

GTKUI_DLL_API void release_gtk_ui(void* gtk_ui_doc)
{
    _release_gtk_ui<GtkUiXmlDoc, GtkUiXmlNode>((GtkUiXmlDoc)gtk_ui_doc);
}

GTKUI_DLL_API void* get_gtk_ui_first_child(void* gtk_ui_doc, void* node)
{
    return _get_gtk_ui_first_child<GtkUiXmlDoc, GtkUiXmlNode>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node);
}

GTKUI_DLL_API void* get_gtk_ui_next_child(void* gtk_ui_doc, void* node, void* child)
{
    return _get_gtk_ui_next_child<GtkUiXmlDoc, GtkUiXmlNode>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node, (GtkUiXmlNode)child);
}

GTKUI_DLL_API void* get_gtk_ui_parent(void* gtk_ui_doc, void* node)
{
    return _get_gtk_ui_parent<GtkUiXmlDoc, GtkUiXmlNode>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node);
}

GTKUI_DLL_API void* get_gtk_ui_get_child_node(void* gtk_ui_doc, void* node, const char* child_name)
{
    return _get_gtk_ui_get_child_node<GtkUiXmlDoc, GtkUiXmlNode>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node, child_name);
}

GTKUI_DLL_API bool get_gtk_ui_has_child_node(void* gtk_ui_doc, void* node, const char* child_name)
{
    return _get_gtk_ui_has_child_node<GtkUiXmlDoc, GtkUiXmlNode>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node, child_name);
}

GTKUI_DLL_API const char* get_gtk_ui_node_name(void* gtk_ui_doc, void* node)
{
    return _get_gtk_ui_node_name<GtkUiXmlDoc, GtkUiXmlNode>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node);
}

GTKUI_DLL_API const char* get_gtk_ui_node_value(void* gtk_ui_doc, void* node)
{
    return _get_gtk_ui_node_value<GtkUiXmlDoc, GtkUiXmlNode>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node);
}

GTKUI_DLL_API void* get_gtk_ui_first_property(void* gtk_ui_doc, void* node)
{
    return _get_gtk_ui_first_property<GtkUiXmlDoc, GtkUiXmlNode, GtkUiXmlAttr>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node);
}

GTKUI_DLL_API void* get_gtk_ui_next_property(void* gtk_ui_doc, void* node, void* attr)
{
    return _get_gtk_ui_next_property<GtkUiXmlDoc, GtkUiXmlNode, GtkUiXmlAttr>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node, (GtkUiXmlAttr)attr);
}

GTKUI_DLL_API bool get_gtk_ui_has_property(void* gtk_ui_doc, void* node, const char* property_name)
{
    return _get_gtk_ui_has_property<GtkUiXmlDoc, GtkUiXmlNode>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node, property_name);
}

GTKUI_DLL_API void* get_gtk_ui_get_property(void* gtk_ui_doc, void* node, const char* child_name)
{
    return _get_gtk_ui_get_property<GtkUiXmlDoc, GtkUiXmlNode, GtkUiXmlAttr>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node, child_name);
}

GTKUI_DLL_API const char* get_gtk_ui_property_name(void* gtk_ui_doc, void* node, void* attr)
{
    return _get_gtk_ui_property_name<GtkUiXmlDoc, GtkUiXmlNode, GtkUiXmlAttr>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node, (GtkUiXmlAttr)attr);
}

GTKUI_DLL_API const char* get_gtk_ui_property_value(void* gtk_ui_doc, void* node, void* attr)
{
    return _get_gtk_ui_property_value<GtkUiXmlDoc, GtkUiXmlNode, GtkUiXmlAttr>((GtkUiXmlDoc)gtk_ui_doc, (GtkUiXmlNode)node, (GtkUiXmlAttr)attr);
}

#ifdef __cplusplus
};
#endif
